package arena.soldier;

import gameframework.base.MoveStrategy;
import gameframework.base.MoveStrategyKeyboard;
import gameframework.game.GameMovable;
import gameframework.game.GameUniverse;

//ajout d'une classe abstraite entre l'interface Soldier et les classes l'implémentant pour pouvoir avoir des Soldier extendant 
//GameMovable (ce n'est pas possible de faire extends une interface, donc Soldier ne pouvait extends GameMovable directement).
public abstract class SoldierGame extends GameMovable implements Cloneable, Soldier{
	public void setFighting(boolean isFighting){}
	public void setMoveStrategy(MoveStrategyKeyboard keyStr) {}	
	public MoveStrategy getMoveStrategy() {
		return null;
	}
	
	public Object clone() {
		Object o = null;
		try {
			// On récupère l'instance à renvoyer par l'appel de la 
			// méthode super.clone()
			o = super.clone();
		} catch(CloneNotSupportedException cnse) {
			// Ne devrait jamais arriver car nous implémentons 
			// l'interface Cloneable
			cnse.printStackTrace(System.err);
		}
		// on renvoie le clone
		return o;
	}

	public boolean isFighting() {
		return false;
	}

	public boolean isVulnerable() {
		return false;
	}

	public void setInvulnerable(int timer) {}

	public void createTower() {}
	public void setUniverse(GameUniverse universe) {}
	
}
